// Keywords: migration, dispersal

initialize() {
	initializeMutationRate(1e-7);
	initializeMutationType("m1", 0.5, "f", 0.0);
	initializeMutationType("m2", 1.0, "f", 0.5);    // introduced mutation
	initializeGenomicElementType("g1", m1, 1.0);
	initializeGenomicElement(g1, 0, 99999);
	initializeRecombinationRate(1e-8);
}
1 early() {
	subpopCount = 10;
	for (i in 1:subpopCount)
		sim.addSubpop(i, 500);
	for (i in 2:subpopCount)
		sim.subpopulations[i-1].setMigrationRates(i-1, 0.01);
	for (i in 1:(subpopCount-1))
		sim.subpopulations[i-1].setMigrationRates(i+1, 0.2);
}
100 late() {
	target = sample(p1.genomes, 1);
	target.addNewDrawnMutation(m2, 10000);
}
100:100000 late() {
	if (sim.countOfMutationsOfType(m2) == 0)
	{
		fixed = (sum(sim.substitutions.mutationType == m2) == 1);
		cat(ifelse(fixed, "FIXED\n", "LOST\n"));
		sim.simulationFinished();
	}
}
